/** @jsxImportSource @emotion/react */
import * as React from "react";
import {Button, Text, TextArea, useToast,} from "customize-easy-ui-component";
import {InspectRecordLayout, InternalItemProps, useItemInputControl} from "../../common/base";
import {useMedia} from "use-media";
import {assertNamesUnique} from "../../common/eHelper";
import {EditStorageContext} from "../../StorageContext";
import {input设计温度} from "../../vessel/Annual/orcBase";
import {render容类别} from "../../common/render";
import {itemA下结论} from "./Conclusion";
import {itemA检验项} from "./AppendixPage";

export const config设备概况 = [
    [['设备名称', '_$设备名称'], ['容器类别', '_$设备品种',render容类别] ],
    [['使用登记证编号', '_$使用证号'], ['单位内编号','_$单位内部编号'], ],
    [['使用单位名称', '_$使用单位'], ],
    [['设备使用地点', '_$设备使用地点'], ],
    [['安全管理人员', '安全员'], ['联系电话', '安全员电'] ],
    //_$安全评定 在结论编辑录入的，并非来自台账。    ？也不用来自台账的：下检日期；  不一定有设置日期？
    [['安全状况等级', '_$安全评定'], ['下次定期检验日期', '_$新下检日', ] ],
    [['产品编号', '_$出厂编号'],  ['公称壁厚', '_$公称壁厚', 'mm']  ],
    [['设计压力',  '_$设计压力', 'MPa'], ['设计温度', {n:'设计温度',u:'℃'}, input设计温度],  ['设计介质', '_$设计介质'] ],
    [['工作压力', '_$工作压力','MPa'], ['工作温度', '_$工作温度','℃'],  ['工作介质', '_$工作介质'] ],
    [['检查依据', {r:<>TSG 21-2016《固定式压力容器安全技术监察规程》<br/>TSG08-2017《特种设备使用管理规则》</>} ],  ],
];

export const tail附页= <Text css={{"@media print": {fontSize: '0.75rem'}}}>
    注：无问题或者合格的检查项目在检查结果栏打“√”；检验项目存在一般问题在检查结果栏打“○”；检验项目存在严重问题，单项结论为“不符合要求”或“不合格”在检查结果栏打“×”，并且在备注中说明；实际没有的检查项目
    在检查结果栏填写“无此项”或划“/”，或者按照实际的检查项目编制；无法检查的项目在检查结果栏中划“一”，并且在备注栏中说明原因。
</Text>;

/**开启编制时的：默认值初始化操作。  若打印：本编辑器全部都不显示。
 * */
export const EntranceSetup =
React.forwardRef((
    {children, show, alone = true, repId, verId, rep}: InternalItemProps, ref
) => {
    const atPrint = useMedia('print');
    const toast = useToast();
    const doCheckNames = React.useCallback((verId: string) => {
        const result = assertNamesUnique([{value: rep?.tzFields},
            {value: config设备概况, type:'esnt'},
            {value:[...itemA下结论, ...itemA检验项, ]},
            {value:['Projects','附页表'  ]} ]);
        toast({title: "完成！", subtitle: result ? "没发现冲突" : "测试开关没开", intent: "success"});
    }, [rep,toast]);
    const {storage, setStorage} =React.useContext(EditStorageContext) as any;
    const getInpFilter = React.useCallback((par: any) => {
        const {_tblFixed, } =par||{};
        return {_tblFixed, };
    }, []);
    const {inp, setInp} = useItemInputControl({ref});
    if (atPrint) return null;
    else return (
        <InspectRecordLayout inp={inp} setInp={setInp} getInpFilter={getInpFilter} show={show}
                             alone={alone} label={'初始化本报告，默认值配置等'}>
            {process.env.REACT_APP_TEST==='true' && <><div>
                <Text variant="h5">构建开发模板时的工具：校验模板的存储name冲突；</Text>
                <Button intent='primary' onPress={() => doCheckNames(verId!)}>校验模板name唯一性</Button>
                <Text variant="h5">设置待测试表格的各列宽度：</Text>
                <TextArea value={storage?._tblFixed || ''} rows={2} onChange={e =>{
                              JSON.parse(e.currentTarget.value??'[]');
                              setStorage({ ...storage, _tblFixed: e.currentTarget.value || undefined}); }}/>
            </div>
            </>}
        </InspectRecordLayout>
    );
});
